/**
 * 替换 theme.json 中配置的主题变量
 */
import { isEmptyObject } from '@shared';

// 创建匹配主题项的正则
function createThemePattern(value) {
  // 如果是 $ 开头则需要转义，其它特殊字符通过文档中的约定来避免出现。
  if (!value.indexOf('$')) {
    value = '\\' + value;
  }
  // 保险起见，应当匹配 "$var"，而不是直接匹配 $var
  return new RegExp(`"${value}"`, 'g');
}
// 替换主题信息
export function replaceThemeOptions(pagesJsonString, themeOptions) {
  if (!isEmptyObject(themeOptions)) {
    for (let key in themeOptions) {
      const pattern = createThemePattern(key);
      pagesJsonString = pagesJsonString.replace(
        pattern,
        `"${themeOptions[key]}"`
      );
    }
  }
  return pagesJsonString;
}
